1. 用 Console 建立與套用兩個必要的 IAM Role
ECS(EC2 模式)至少要兩個角色(Role):
-
EC2 容器主機角色:讓這台 EC2(ECS Agent)能跟 ECS 服務通訊。建好後要套用到 EC2。使用 AWS 受管政策(managed policy)AmazonEC2ContainerServiceforEC2Role。
-
Task Execution Role:讓 ECS 在啟動任務時,能從 ECR 拉映像與把日誌送到 CloudWatch Logs。使用 AmazonECSTaskExecutionRolePolicy。
A. 建「EC2 容器主機角色」並套用到 EC2(Console)
- 進入 IAM → Roles → Create role
- Trusted entity 選 AWS service
- Use case 選 EC2
- 在「Add permissions」搜尋並勾選 AmazonEC2ContainerServiceforEC2Role → 下一步 → Role name 輸入
TradeContainer
→ Create role。
- 再加入一個額外的
AmazonEC2ContainerRegistryPowerUser
讓這個Role有權限可以把docker image push到ECR (後面會用到)
- 進 EC2 → Instances →(勾選你的主機)→ Actions → Security → Modify IAM role
- 選擇剛建立的
TradeContainer
(本質是同名 Instance Profile)→ Update IAM role 套用到這台主機。

B. 建「Task Execution Role」(Console)
-
IAM → Roles → Create role
- Use case 選 Elastic Container Service → Elastic Container Service Task
- 在「Add permissions」搜尋並勾選 AmazonECSTaskExecutionRolePolicy
- Role name 輸入
ecsTaskExecutionRole
→ Create role。

備註:Task Role(給容器內你的 Python 程式用來存取 S3/Secrets…)這次 Hello World 不需要,之後要用再補。
2. 建立 ECS Cluster(Console)
- 進 ECS Console → Clusters → Create cluster
- 輸入名稱(如
trade-cluster
),其餘維持預設即可 → Create
- EC2 模式下,Cluster 只是邏輯分組;等會 EC2 透過 Agent 連進來。
- Infrastructure: 都先不勾選